package com.brokendust.client.task;

import com.brokendust.client.api.module.image.ImageEntity;
import com.brokendust.client.api.module.item.ItemEntityShow;
import com.brokendust.client.api.module.text.TextEntity;
import com.brokendust.client.config.entity.player.PlayerRenderJson;
import com.brokendust.client.config.module.image.ImageEntityJson;
import com.brokendust.client.config.module.item.ItemEntityJson;
import com.brokendust.client.config.module.text.TextEntityJson;
import com.brokendust.client.manager.ClientManager;

public class RenderPlayerTask {
    public static void unRenderPlayer(String message) {
        if (!ClientManager.open) {
            return;
        }
        PlayerRenderJson playerRenderJson = PlayerRenderJson.readJSON(message);
        for (String type : playerRenderJson.getObjectList().keySet()) {
            ClientManager.imageEntityMap.remove(type);
            ClientManager.textEntityMap.remove(type);
            ClientManager.itemEntityShowMap.remove(type);
        }
    }

    public static void renderPlayer(String message) {
        if (!ClientManager.open) {
            return;
        }
        PlayerRenderJson playerRenderJson = PlayerRenderJson.readJSON(message);
        for (String type : playerRenderJson.getObjectList().keySet()) {
            String value = playerRenderJson.getObjectList().get(type);
            if (type.startsWith("Image")) {
                ImageEntityJson imageEntityJson = ImageEntityJson.readJSON(value);
                ImageEntity imageEntity = new ImageEntity(imageEntityJson);
                ClientManager.imageEntityMap.put(type, imageEntity);
            } else if (type.startsWith("Item")) {
                ItemEntityJson itemEntityJson = ItemEntityJson.readJSON(value);
                ItemEntityShow itemEntityShow = new ItemEntityShow(itemEntityJson);
                ClientManager.itemEntityShowMap.put(type, itemEntityShow);
            } else {
                if (!type.startsWith("Text")) {
                    continue;
                }
                TextEntityJson textEntityJson = TextEntityJson.readJSON(value);
                TextEntity textEntity = new TextEntity(textEntityJson);
                ClientManager.textEntityMap.put(type, textEntity);
            }
        }
    }
}
